import axios from "axios";

// 创建一个 axios 实例
const service = axios.create({
  baseURL: "", // 所有的请求地址前缀部分
  timeout: 600000, // 请求超时时间毫秒
  withCredentials: false, // 异步请求携带cookie
  transformResponse: [
    function (data) {
      // 对 data 进行任意转换处理

      return data;
    },
  ],
});

// 添加请求拦截器
service.interceptors.request.use(
  (config) => {
    let user = sessionStorage.getItem("userInfo") ? JSON.parse(sessionStorage.getItem("userInfo"))?.user.name : null;
    config.headers["username"] = user;
    return config;
  },

  (err) => {
    return Promise.reject(err);
  },
);

// 添加响应拦截器
service.interceptors.response.use(
  (res) => {
    // res 响应结果
    if (res.config.responseType === "blob") {
      return res.data;
    }
    let data = JSON.parse(res.data);

    if (data.code === 200) {
      res.headers.backendip
        ? sessionStorage.setItem("backendip", res.headers.backendip.slice(0, res.headers.backendip.indexOf(":")))
        : sessionStorage.setItem("backendip", "10.6.70.105");
      return data;
    } else if (data.code === 403) {
      return data;
    } else {
      return data;
    }
  },
  (err) => {
    return Promise.reject(err);
  },
);

export default service;
